<template>
  <div>
    <input placeholder="输入关键字搜索" v-model="searchQuery">
    <MyTable :data="filterRecords">
      <template #header>
        <th>就诊日期</th>
        <th>医生姓名</th>
        <th>诊断结果</th>
        <th>处方信息</th>
        <th>操作</th>
      </template>

      <template #body="{ item }">
        <td>{{ item.date }}</td>
        <td>{{ item.doctor }}</td>
        <td>{{ item.diagnosis }}</td>
        <td>{{ item.prescription }}</td>
        <td @click="showDetail(item)">详情</td>
      </template>
    </MyTable>
    <PatientDetail v-show="isShow" :isShow="isShow" @close="isShow = false" :item="item"></PatientDetail>
  </div>
</template>


<script>
import MyTable from './components/MyTable.vue';
import PatientDetail from './components/PatientDetail.vue';

export default {
  name: 'App',
  components: {
    MyTable,
    PatientDetail
  },
  data() {
    return {
      records: [
        {
          date: '2022-01-01',
          doctor: '张三',
          diagnosis: '感冒',
          prescription: '感冒药',
        },
        {
          date: '2022-02-01',
          doctor: '李四',
          diagnosis: '头疼',
          prescription: '止疼药',
        },
        {
          date: '2022-03-01',
          doctor: '王五',
          diagnosis: '腰痛',
          prescription: '止痛贴',
        }
      ],
      isShow: false,
      item: {},
      searchQuery: ''
    }
  },
  methods: {
    showDetail(item) {
      this.isShow = true;
      this.item = item;
    }
  },
  computed: {
    filterRecords() {
      return this.records.filter(record => {
        const query = this.searchQuery;
        return (
          record.date.includes(query) ||
          record.doctor.includes(query) ||
          record.diagnosis.includes(query) ||
          record.prescription.includes(query)
        );
      });
    }
  }
}
</script>


<style scoped>
.my-table {
  border-collapse: collapse;
  width: 100%;
}

.my-table td,
.my-table th {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: left;
}

.my-table th {
  background-color: #f2f2f2;
}
</style>
